var ishistory = false;
$(document).ready(function(){
	
	//待上传文件列表，只存储合法有效且在编号在数据库有对应的文件名。
	var fileUploadList = [];
	//上传文件成功列表名
	var fileSucList = [];
	//文件名正则表达式 类似'000109-A-0001'这种格式
	var fileRge = /\w+-[a-zA-Z]-\w+/g;
	
	$("#functionNav").attr("href",navAddr);
	//获取并填充来源类型
	var lylxJson = ajaxResult("get",false,ProjectName+"/sysmanage.getIdAndNameInJb.do",{'tableName':'jb_lyfs'});
	loadSelect("#form1 select[name=lylx]",lylxJson.rows,'id','name');
	//获取并填充时代
	getSdOption();
	//var doms_sd = ["DJH_SD1","DJH_SD2","DJH_SD3","DJH_SD4"];
	//selectFour(url_nd,doms_sd);
	//获取查询条件
	var params =$("#form1").serializeObject();
	if(getUserRight()){
		params["sysid"]=userInfo.userid;
		//初始化待上传影像Table
	  	createTable('#dbTable',ProjectName+'/colmanage.getDbCpList.do','id',tblColTitle,params);
	}	
	
 	 //点击查询按钮
	 $("#search_btn").click(function(){
		 refreshTable('#dbTable','#form1');
	 });
	 $("#plsc_btn").click(function(){
		 ishistory = false;
		 $("#myModal2").modal('show');
	 })
	 $("#plsc_his_btn").click(function(){
		 ishistory = true;
		 $("#myModal2").modal('show');
	 })
  //点击提交登编员审核按钮
	 $("#tjdb_btn").click(function(){
		var selectData = $("#dbTable").bootstrapTable('getSelections');
		var ids = new Array();
		$.each(selectData,function(index,value){
			ids.push(value["id"]);
		});	
		if(ids.length == 0){
			alertFunc("请选择记录！");
			return false;
		}
		bootbox.setLocale("zh_CN");
		bootbox.confirm("上传影像完成后才能提交登编员审核，您确定提交吗？",function(r){
			if(r){
				var dbResult = ajaxResult("post",false,ProjectName+"/colmanage.tijiaoDengbianShh.do",{'ids':ids+""});
				if(dbResult["status"] == 'ok'){
				   alertFunc("提交登编员审核成功！");
				   $('#dbTable').bootstrapTable('refresh');
			    }else{
				   alert(dbResult["error"]);
			    }
			}
		});
	 });
	 
	 var upload = $("#uploadify");
	 upload.uploadify({
		    //此处的路径是相对于js文件被引入的html文件的相对路径
			'swf' : '../../uploadify/uploadify.swf',//控件flash文件位置
			'uploader' : ProjectName+"/colmanage.addDbYxList.do", //后台处理程序的相对路径
//			'queueID' : 'fileQueue', //上传文件页面中，你想要用来作为文件队列的元素的id, 默认为false  自动生成,  不带#
			'width' : '100',//按钮宽度
			'height' : '32',//按钮高度
			'fileTypeDesc' : 'Image files', //在浏览窗口底部的文件类型下拉菜单中显示的文本
			'fileTypeExts' : '*.jpg;*.jpeg', //控制可上传文件的扩展名，启用本项时需同时声明fileDesc 
			'fileObjName' : '"uploadify"',
			'buttonText' : '选择上传图片',         //上传按钮显示内容，还有个属性可以设置按钮的背景图片
//			'buttonClass' : 'test',            //上传按钮样式
			'fileSizeLimit' : '1000KB',
			'formData' : { 'ishistory': false}, //只能传静态参数，即数值写死在脚本的。
			'auto' : false,   //选择文件后自动上传。如果不想自动上传，需设定为false，并通过按钮控制上传。每个文件都需要分别操作
			'multi' : true,  //允许多文件上传
			'queueSizeLimit' : 50, //队列最多显示的任务数量，如果选择的文件数量超出此限制，将会出发onSelectError事件。
			'uploadLimit' : 50,  //最大上传文件数量，如果达到或超出此限制将会触发onUploadError事件。
			'removeCompleted' : true, //是否自动将已完成任务从队列中删除，如果设置为false则会一直保留此任务显示。
			'removeTimeout' : 1,  //如果设置了任务完成后自动从队列中移除，则可以规定从完成到被移除的时间间隔。
			'overrideEvents' : [ 'onDialogClose', 'onUploadSuccess', 'onUploadError', 'onSelectError' ],//重写默认方法
			'onFallback' : function() {//检测FLASH失败调用
				alert("您未安装FLASH控件，无法上传图片！请安装FLASH控件后再试。");
			},
			'onSelect' : uploadify_onSelect,
			'onSelectError' : uploadify_onSelectError,
			'onUploadStart' : uploadify_onUploadStart,
			'onUploadError' : uploadify_onUploadError,
			'onUploadSuccess' : uploadify_onUploadSuccess,
			'onQueueComplete': uploadify_onQueueComplete
		});
	 
	 	$('#start').click(function(){
	 		fileUploadList = [];
	 		if($('#uploadify-queue').children().length==0){
	 			alertFunc("请先选择上传图片");
	 			return;
	 		}
	 		var uploadList = $('#uploadify-queue').find('.fileName');
	 		var tip = '';
	 		uploadList.each(function(){
	 			var name = $(this).html();
	 			var re = /[\w-]+\.\w+/;
	 			var res = name.match(re);
	 			if(res)
	 				name = res[0];
	 			if(!name){
	 				tip += name+': 文件名不能为空！<br>';
	 				return;
	 			}
	 			
	 			//删除错误状态标记
	 			if($(this).hasClass('error'))
	 				$(this).removeClass('error');
	 			if($(this).hasClass('invalid'))
		 			$(this).removeClass('invalid');
	 			
	 			if(!name.match(fileRge)){
	 				tip += name+': 文件名不合法！<br>';
	 				console.log($(this))
	 				$(this).addClass('error');
	 				return;
	 			}
	 			var arr = name.split('-');
	 			//验证方位合法性
	 			if(arr[1]<'A' || arr[1]>'F'){
	 				tip += name + ': 拍摄方向'+arr[1]+'不正确！[A-F]<br>';
	 				$(this).addClass('invalid');
	 				return;
	 			}
	 			//验证藏品编号存在性
	 			var field = $('#addType').val()=='1' ? 'zdjh' : 'flh';
	 			var response = ajaxResult("get", false, ProjectName+'/col.existInRelicForSomeField.do', {'field':field, 'value':arr[0],'ishistory':ishistory,'userid':userInfo.userid})
	 			if(response['status']=='Failed'){
	 				tip += name + ': ' +response['error']+'<br>';
	 				$(this).addClass('invalid');
	 				return;
	 			}
	 			fileUploadList.push($(this).parent().attr('id'));
	 		});
	 		if(tip.length>0)
	 			alertFunc(tip)
	 		else{ //文件名合法，再执行上传操作。如果直接在html中写这个链接，则无法进行逻辑控制，总会自动上传。
	 			if(fileUploadList.length>0){
	 				$('#uploadify').uploadify('upload', fileUploadList);
	 			}else
	 				alertFunc("请先选择上传文件！")
	 		}
	 	});
	 	$('#cancel').click(function(){
	 		if($('#uploadify-queue').children().length==0)
	 			alertFunc("请先选择上传图片");
	 		else
	 			$('#uploadify').uploadify('cancel', '*')
	 	});
	 	//设置垂直滚动条
	 	$('.uploadify-queue').css('max-height', '300px').css('overflow-y', 'auto');
//	 	$('.uploadify-queue').on('click', 'a', function(){
//	 		var html = $(this).parent().siblings().html();
// 			var name = html.match(/[\w-]+\.\w+/);
// 			$('#uploadify').uploadify('cancel')
//	 	});
})

var tblColTitle = [{
		 field: 'check',
		 checkbox:true
	    },{
	        field: 'rgh',
	        title: '入馆号'
	    }, {
	        field: 'zdjh',
	        title: '总登记号'
	    }, {
	        field: 'cpmc',
	        title: '藏品名称',
	        formatter: function(value, row, index) {	        	
	        	return '<a href="dbDetail.html?id='+row.id+'">'+value+'</a>';
		      }
	    }, {
	        field: 'sd4',
	        title: '时代',
	        formatter: function(value, row, index) {
	        	var sd="";
	        	if(row.sd4!="" && row.sd4!=null){
	        		sd =row.sd4;
	        	}else if(row.sd3!="" && row.sd3!=null){
	        		sd =row.sd3;
	        	}else if(row.sd2!="" && row.sd2!=null){
	        		sd =row.sd2;
	        	}else if(row.sd1!="" && row.sd1!=null){
	        		sd =row.sd1;
	        	}
	        	return sd;
		      }
	    }, {
	        field: 'sjsl',
	        title: '实际数量',
	        formatter: function(value, row, index) {	        	
	        	return value+row.sjsldw;
		      }
	    }, {
	        field: 'lylxmc',
	        title: '来源方式'
	    },{
	        field: '',
	        title: '操作',
	        formatter: function(value, row, index) {
	        	if(row.ztbz == 2){
	      	  		return '<a href="scyxInfo.html?id='+row.id+'">上传影像</a>';
	        	}
		      }
	    }];

var uploadify_onSelectError = function(file, errorCode, errorMsg) {
	var upload = $("#uploadify");
	var msgText = "上传失败\n";
	switch (errorCode) {
	case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
		// this.queueData.errorMsg = "每次最多上传 " +
		// this.settings.queueSizeLimit + "个文件";
		msgText += "上传的文件数量已经超出系统限制的'" + upload.uploadify('settings', 'queueSizeLimit') + "'个文件！";
		break;
	case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
		msgText += "文件 [" + file.name + "]大小超出系统限制的" + upload.uploadify('settings', 'fileSizeLimit') + "大小！";
		break;
	case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
		msgText += "文件大小为0";
		break;
	case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
		msgText += "文件格式不正确，仅限 " + this.settings.fileTypeExts;
		break;
	default:
		msgText += "错误代码：" + errorCode + "\n" + errorMsg;
	}
	alertFunc(msgText);
};

var uploadify_onUploadError = function(file, errorCode, errorMsg, errorString) {
	// 手工取消不弹出提示
	if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED || errorCode == SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED) {
		return;
	}
	var msgText = "上传失败\n";
	switch (errorCode) {
	case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
		msgText += "HTTP 错误\n" + errorMsg;
		break;
	case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
		msgText += "上传文件丢失，请重新上传";
		break;
	case SWFUpload.UPLOAD_ERROR.IO_ERROR:
		msgText += "IO错误";
		break;
	case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
		msgText += "安全性错误\n" + errorMsg;
		break;
	case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
		msgText += "每次最多上传 " + this.settings.uploadLimit + "个";
		break;
	case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
		msgText += errorMsg;
		break;
	case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
		msgText += "找不到指定文件，请重新操作";
		break;
	case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
		msgText += "参数错误";
		break;
	default:
		msgText += "文件:" + file.name + "\n错误码:" + errorCode + "\n" + errorMsg + "\n" + errorString;
	}
	alertFunc(msgText);
}

var uploadify_onSelect = function() {
	fileSucList = [];
	fileFailList = [];
};

var uploadify_onUploadStart = function(file) {
	//在onUploadStart事件中，也就是上传之前，把参数写好传递到后台。
	var params =  $('#addType').serializeObject();
	params["ishistory"]=ishistory;
	$("#uploadify").uploadify("settings", "formData",params);
//	 $("#uploadify").uploadify("settings", "someOtherKey", 2);
};

var uploadify_onUploadSuccess = function(file, status, response) {
	$('#' + file.id).find('.data').html(' 上传完毕');
	//字符串转json
	status = $.parseJSON(status)
	if(status.status=='Failed'){
		alertFunc(file.name+': '+status.error);
	}else
		fileSucList.push(file.name);
		
};

var uploadify_onQueueComplete = function(queueData){
	var content = '';
	var hasContent = false;
	if(fileSucList.length>0){
		content = '上传文件成功列表：<br>';
		$.each(fileSucList, function(i, item){
			content += item+','
		});
		content = content.substring(0, content.length-1);
		hasContent = true;
	}
	if(hasContent)
		alertFunc(content);
}

